﻿Public Class perRamoAtividade
    Inherits perPadrao

#Region "Declaração de variáveis"
    Private objBuscaId As New perProximoId
#End Region

#Region "Propriedades"

    Public ReadOnly Property sqlConsulta() As String
        Get
            Dim sSql As String
            sSql = "SELECT IDRamoAtividade, Descricao "
            sSql &= " FROM DC_RamosAtividade"
            sSql &= " ORDER BY Descricao"

            Return sSql
        End Get
    End Property

#End Region

#Region "Métodos"

    Public Function inserirRamoAtividade(ByVal sRamoAtividade As String) As Int32

        Dim iIdRamoAtividade As Int32
        Dim sSql As String

        Try
            iIdRamoAtividade = Me.objBuscaId.BuscaID("IDRamoAtividade", "DC_RamosAtividade")

            sSql = "  INSERT INTO DC_RamosAtividade "
            sSql &= " ( "
            sSql &= "   IDRamoAtividade, "
            sSql &= "   Descricao  "
            sSql &= " ) "
            sSql &= " VALUES "
            sSql &= "   ( @IDRamoAtividade, @Descricao ) "

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@IDRamoAtividade", iIdRamoAtividade)
                .AddWithValue("@Descricao", sRamoAtividade)
            End With

            MyBase.executarAcao(sSql)

            Return iIdRamoAtividade
        Catch ex As Exception
            Throw New Exception("Exceção no método 'inserirRamoAtividade'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Sub alterarRamoAtividade(ByVal iIdRamoAtividade As Int32, _
                                    ByVal sRamoAtividade As String)

        Dim sSql As String

        Try

            sSql = "  UPDATE DC_RamosAtividade SET "
            sSql &= "   Descricao = @Descricao "
            sSql &= " WHERE "
            sSql &= "   IdRamoAtividade = @IDRamoAtividade "

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@IDRamoAtividade", iIdRamoAtividade)
                .AddWithValue("@Descricao", sRamoAtividade)
            End With

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'alterarDepartamento'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Sub excluirRamoAtividade(ByVal iIdRamoAtividade As Int32)

        Dim sSql As String

        Try
            sSql = "  DELETE FROM "
            sSql &= "   DC_RamosAtividade "
            sSql &= " WHERE "
            sSql &= "   IDRamoAtividade = @IDRamoAtividade "

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@IDRamoAtividade", iIdRamoAtividade)
            End With

            MyBase.executarAcao(sSql)

        Catch ex As Exception
            Throw New Exception("Exceção no método 'excluirRamoAtividade'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Sub

    Public Function selecionarCampoRamoAtividade(ByVal sCampo As String, _
                                                 ByVal iIDRamoAtividade As Long) As DataTable
        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT " & sCampo
            sSql &= " FROM DC_RamosAtividade "

            If (iIDRamoAtividade > 0) Then
                sSql &= " WHERE IDRamoAtividade = @IDRamoAtividade "
            End If

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@IDRamoAtividade", iIDRamoAtividade)
            End With

            dsDados = MyBase.executarConsulta(sSql, "DC_RamosAtividade")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_RamosAtividade").Rows.Count > 0 Then
                Return dsDados.Tables("DC_RamosAtividade")
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarCampoRamoAtividade'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function

    Public Function selecionarRamoAtividade(ByVal iIDRamoAtividade As Int32) As DataRow

        Dim sSql As String
        Dim dsDados As New DataSet

        Try
            sSql = " SELECT * FROM DC_RamosAtividade "
            sSql &= " WHERE IDRamoAtividade = @IDRamoAtividade"

            With MyBase.SQLCmd.Parameters
                .Clear()
                .AddWithValue("@IDRamoAtividade", iIDRamoAtividade)
            End With

            dsDados = MyBase.executarConsulta(sSql, "DC_RamosAtividade")

            If Not dsDados Is Nothing AndAlso dsDados.Tables("DC_RamosAtividade").Rows.Count > 0 Then
                Return dsDados.Tables("DC_RamosAtividade").Rows(0)
            Else
                Return Nothing
            End If

        Catch ex As Exception
            Throw New Exception("Exceção no método 'selecionarCampoRamoAtividade'. " & Environment.NewLine & Environment.NewLine & ex.Message)
        End Try

    End Function
#End Region
End Class
